1. Field of the Invention
The present invention generally relates to data processing and more particularly to debugging code.
2. Description of the Related Art
A programmer develops a software program by producing and entering source code into files using a text editor program. The computer then creates an executable program by translating the source code into machine code. The machine code is the rudimentary instructions understood by a computer. Illustratively, the foregoing software development process is accomplished by running a series of programs. These programs typically include a compiler for translating the source code into machine code and a linker to link the machine code together to form a program.
When developing computer software, it is necessary to perform a function termed “debugging”. Debugging involves testing and evaluating the software to find and correct any errors and improper logic operation. An effective debugger program is necessary for rapid and efficient development of software and typically provides functions including breakpoints, run-to-cursor, step into, step over and the like.
A conventional debugging system comprises a combination of computer hardware and debugger software that executes a user's program in a controlled manner. Debugging aids a user in identifying and correcting mistakes in an authored program by allowing the program to be executed in small segments. This approach is enabled primarily by two operations: step functions and breakpoints.
A “step” function permits a computer programmer to process instructions (also known as “statements”) in a computer program one-by-one, and see the results upon completion of each instruction. While the step operation provides a programmer with a large amount of information about a program during its execution, stepping through hundreds or thousands of program instructions can be extremely tedious and time consuming, and may require a programmer to step through many program instructions that are known to be error-free before a set of instructions to be analyzed are executed.
To address this difficulty, conventional debuggers utilize a breakpoint operation, which permits a computer programmer to identify, with a “breakpoint”, a precise instruction for which it is desired to halt execution of a computer program during execution. As a result, when a computer program is executed by a debugger, the program executes in a normal fashion until a breakpoint is reached, and then stops execution and displays the results of the computer program to the programmer for analysis.
Some conventional debuggers support non-conditional breakpoints where the execution of the program is always halted upon reaching the breakpoint. Other debuggers support conditional breakpoints that halt the execution of a program only when a predetermined value, i.e. a condition, is obtained when the breakpoint is encountered.
Breakpoints that are set within a scope typically share common attributes. Thus, if one breakpoint is encountered the rest of the breakpoints are also encountered. While debugging code within the scope, a user frequently executes an operation, such as a disable operation or an enable operation, on the breakpoints within the scope. If the user desires to execute the same operation on all the breakpoints within the scope, the user would have to execute the same operation on each individual breakpoint within the scope. Individually executing the same operation on each breakpoint within the same scope can be tedious and cumbersome, particularly if the number of breakpoints within the scope is significant.
A need therefore exists for a method and apparatus for simultaneously executing the same operation on the breakpoints within the same scope.